package 树.层级遍历;

import 树.递归.TreeNode;

import java.util.LinkedList;
import java.util.Queue;

public class 找树左下角的值_513 {
    public int findBottomLeftValue(TreeNode root) {


        Queue<TreeNode> q = new LinkedList<>();

        int firstNode = -1;

        q.offer(root);
        while (!q.isEmpty()) {
            int count = q.size();//该层节点的个数

            for (int i = 0; i < count; i++) {
                TreeNode cur = q.poll();
                if (i == 0) {
                    firstNode = cur.val;//存放每一层的第一个节点，最后一次循环，这个值就是最后一层的第一个节点了。也就是最左边的值
                }

                if (cur.left != null) {
                    q.offer(cur.left);
                }
                if (cur.right != null) {
                    q.offer(cur.right);
                }
            }
        }
        return firstNode;
    }
}
